package cn.fzc.example.redis.distributedlock.manager;

/**
 * @Author: fu.zc
 * @Date: 2020/8/5 13:52
 * @Description:
 */
public interface ILockManager {

    /**
     * 通过加锁安全执行程序，无返回的数据
     * @param lockKeyName key名称
     * @param callback
     */
    void lockCallBack(String lockKeyName, SimpleCallBack callback);
    /**
     * 通过加锁安全执行程序，有返回数据
     * @param lockKeyName
     * @param callback
     * @return
     */
    <T> T lockCallBackWithRtn(String lockKeyName, ReturnCallBack<T> callback);
}
